package hch.redesFerroviarias;

import hch.utils.Sentido;

import java.util.List;

public class RedFerroviaria2 extends RedFerroviaria{
	

	public RedFerroviaria2(int id,int cantEstaciones, int cantTrenes) {
		super(id,cantEstaciones, cantTrenes);
	}

	//*************//
	//** METHODS **//
	//*************//
	public void darStart(){
		for (Pasajero pasajero : this.pasajeros) { pasajero.start(); }
		for (Tren tren : this.trenes) { tren.start(); }
		new Thread((Runnable)this.estacionTrasbordo).start();
	}
	
	//*****************//
	//** INITIALIZES **//
	//*****************//
	
	protected void initPasajeros(){
		this.pasajeros.add(new Pasajero(10, this.minNroEstacion, 3,this));
		this.pasajeros.add(new Pasajero(11, this.minNroEstacion, 3,this));
		this.pasajeros.add(new Pasajero(12, this.minNroEstacion, 8,this));
		this.pasajeros.add(new Pasajero(13, this.minNroEstacion, 8,this));
		this.pasajeros.add(new Pasajero(14, this.minNroEstacion, 7,this));
		this.pasajeros.add(new Pasajero(15, this.minNroEstacion, 7,this));
		System.out.println(idRed);
		System.out.println(pasajeros);
	}
	
	//**************//
	//** SORTERS **//
	//**************//
	protected void acomodarTrenes() {
		for (Tren tren : this.trenes) {
			Estacion estacion = this.estaciones.get(tren.getNroEstacion()-1);
			estacion.addTren(tren);
		}
	}
	
	//**************//
	//** ACCESORS **//
	//**************//
	public List<Tren> getTrenes() {
		return trenes;
	}
	
	public int getNroEstaciones() {
		return nroEstaciones;
	}
	
	public int getMinNroEstacion() {
		return minNroEstacion;
	}
	
	public Estacion getEstacionTrasbordo() {
		return estacionTrasbordo;
	}
	
	public List<Estacion> getEstaciones() {
		return estaciones;
	}
	
	
	public void imprimirEstado() {
		String redF = "RED FERROVIARIA "+ idRed +"\n";
		for (Estacion estacion : this.estaciones) {
			redF += estacion.toString() + "\n | \n";
		}
		System.out.println(redF); 
	}
	
	//**********//
	//** Main **//
	//**********//
	public static void main(String[] args) throws InterruptedException {
		RedFerroviaria2 red = new RedFerroviaria2(2,5,4);

		red.darStart();
		Thread.sleep(1000);
	}


}
